A business process execution engine (“process engine”) provides orchestration for sequences of business activities (called a “business process” or simply “process”) in an asynchronous, reliable, and stateful manner.
The business process is defined as an activity flow model, typically declared using a procedural markup language, for example in eXtensible Markup Language (“XML”). An “activity” represents either human performed tasks or automated software services accessed, for example, through an application programming interface (“API”).
Typical process engines, while being reliable and stateful, may execute a process with an indeterminate and/or an unpredictable execution time. This is a disadvantage for certain business processes.